
peer.o:     file format elf64-littleaarch64


Disassembly of section .text:

0000000000000000 <urlparse>:
#include <stdio.h>

int urlparse()
{
   0:	a9bd7bfd 	stp	x29, x30, [sp, #-48]!
   4:	910003fd 	mov	x29, sp
    char *psz_parse;
	char *psz_protocol;
    char *p;
    char *p2;

	psz_parse = "http://192.168.2.41/xiaozhi/test.rmvb";
   8:	90000000 	adrp	x0, 0 <urlparse>
   c:	91000000 	add	x0, x0, #0x0
  10:	f9000fa0 	str	x0, [x29, #24] ; psz_parse

	p  = strstr( psz_parse, ":/" );
  14:	90000000 	adrp	x0, 0 <urlparse>
  18:	91000000 	add	x0, x0, #0x0
  1c:	aa0003e1 	mov	x1, x0
  20:	f9400fa0 	ldr	x0, [x29, #24]
  24:	94000000 	bl	0 <strstr>
  28:	f90017a0 	str	x0, [x29, #40] ; p
	printf("p = %s\n", p);
  2c:	90000000 	adrp	x0, 0 <urlparse>
  30:	91000000 	add	x0, x0, #0x0
  34:	f94017a1 	ldr	x1, [x29, #40]
  38:	94000000 	bl	0 <printf>
    if( p != NULL )
  3c:	f94017a0 	ldr	x0, [x29, #40]
  40:	f100001f 	cmp	x0, #0x0
  44:	54000ba0 	b.eq	1b8 <urlparse+0x1b8>  // b.none
    {
        for( p2 = psz_parse; p2 < p; p2++ )
  48:	f9400fa0 	ldr	x0, [x29, #24] ; psz_parse
  4c:	f90013a0 	str	x0, [x29, #32] ; p2
  50:	14000056 	b	1a8 <urlparse+0x1a8>
        {

		printf("p2 = %s\n", p2);
  54:	90000000 	adrp	x0, 0 <urlparse>
  58:	91000000 	add	x0, x0, #0x0
  5c:	f94013a1 	ldr	x1, [x29, #32]
  60:	94000000 	bl	0 <printf>
		printf("psz_parse = %s\n", psz_parse);
  64:	90000000 	adrp	x0, 0 <urlparse>
  68:	91000000 	add	x0, x0, #0x0
  6c:	f9400fa1 	ldr	x1, [x29, #24]
  70:	94000000 	bl	0 <printf>
#define I(i,a,b) ( (a) <= (i) && (i) <= (b) )
            if( !I(*p2, 'a', 'z' ) && !I(*p2, 'A', 'Z') && !I(*p2, '0', '9') && *p2 != '+' && *p2 != '-' && *p2 != '.' )
  74:	f94013a0 	ldr	x0, [x29, #32]
  78:	39400000 	ldrb	w0, [x0]
  7c:	7101801f 	cmp	w0, #0x60
  80:	540000a9 	b.ls	94 <urlparse+0x94>  // b.plast
  84:	f94013a0 	ldr	x0, [x29, #32]
  88:	39400000 	ldrb	w0, [x0]
  8c:	7101e81f 	cmp	w0, #0x7a
  90:	540003e9 	b.ls	10c <urlparse+0x10c>  // b.plast
  94:	f94013a0 	ldr	x0, [x29, #32]
  98:	39400000 	ldrb	w0, [x0]
  9c:	7101001f 	cmp	w0, #0x40
  a0:	540000a9 	b.ls	b4 <urlparse+0xb4>  // b.plast
  a4:	f94013a0 	ldr	x0, [x29, #32]
  a8:	39400000 	ldrb	w0, [x0]
  ac:	7101681f 	cmp	w0, #0x5a
  b0:	540002e9 	b.ls	10c <urlparse+0x10c>  // b.plast
  b4:	f94013a0 	ldr	x0, [x29, #32]
  b8:	39400000 	ldrb	w0, [x0]
  bc:	7100bc1f 	cmp	w0, #0x2f
  c0:	540000a9 	b.ls	d4 <urlparse+0xd4>  // b.plast
  c4:	f94013a0 	ldr	x0, [x29, #32]
  c8:	39400000 	ldrb	w0, [x0]
  cc:	7100e41f 	cmp	w0, #0x39
  d0:	540001e9 	b.ls	10c <urlparse+0x10c>  // b.plast
  d4:	f94013a0 	ldr	x0, [x29, #32]
  d8:	39400000 	ldrb	w0, [x0]
  dc:	7100ac1f 	cmp	w0, #0x2b
  e0:	54000160 	b.eq	10c <urlparse+0x10c>  // b.none
  e4:	f94013a0 	ldr	x0, [x29, #32]
  e8:	39400000 	ldrb	w0, [x0]
  ec:	7100b41f 	cmp	w0, #0x2d
  f0:	540000e0 	b.eq	10c <urlparse+0x10c>  // b.none
  f4:	f94013a0 	ldr	x0, [x29, #32]
  f8:	39400000 	ldrb	w0, [x0]
  fc:	7100b81f 	cmp	w0, #0x2e
 100:	54000060 	b.eq	10c <urlparse+0x10c>  // b.none
            {
                p = NULL;
 104:	f90017bf 	str	xzr, [x29, #40]
                break;
 108:	1400002c 	b	1b8 <urlparse+0x1b8>
            }

			printf("%d %d %d\n", !I(*p2, 'a', 'z' ) , !I(*p2, 'A', 'Z'), !I(*p2, '0', '9'));
 10c:	f94013a0 	ldr	x0, [x29, #32]
 110:	39400000 	ldrb	w0, [x0]
 114:	7101801f 	cmp	w0, #0x60
 118:	540000a9 	b.ls	12c <urlparse+0x12c>  // b.plast
 11c:	f94013a0 	ldr	x0, [x29, #32]
 120:	39400000 	ldrb	w0, [x0]
 124:	7101e81f 	cmp	w0, #0x7a
 128:	54000069 	b.ls	134 <urlparse+0x134>  // b.plast
 12c:	52800021 	mov	w1, #0x1                   	// #1
 130:	14000002 	b	138 <urlparse+0x138>
 134:	52800001 	mov	w1, #0x0                   	// #0
 138:	f94013a0 	ldr	x0, [x29, #32]
 13c:	39400000 	ldrb	w0, [x0]
 140:	7101001f 	cmp	w0, #0x40
 144:	540000a9 	b.ls	158 <urlparse+0x158>  // b.plast
 148:	f94013a0 	ldr	x0, [x29, #32]
 14c:	39400000 	ldrb	w0, [x0]
 150:	7101681f 	cmp	w0, #0x5a
 154:	54000069 	b.ls	160 <urlparse+0x160>  // b.plast
 158:	52800022 	mov	w2, #0x1                   	// #1
 15c:	14000002 	b	164 <urlparse+0x164>
 160:	52800002 	mov	w2, #0x0                   	// #0
 164:	f94013a0 	ldr	x0, [x29, #32]
 168:	39400000 	ldrb	w0, [x0]
 16c:	7100bc1f 	cmp	w0, #0x2f
 170:	540000a9 	b.ls	184 <urlparse+0x184>  // b.plast
 174:	f94013a0 	ldr	x0, [x29, #32]
 178:	39400000 	ldrb	w0, [x0]
 17c:	7100e41f 	cmp	w0, #0x39
 180:	54000069 	b.ls	18c <urlparse+0x18c>  // b.plast
 184:	52800023 	mov	w3, #0x1                   	// #1
 188:	14000002 	b	190 <urlparse+0x190>
 18c:	52800003 	mov	w3, #0x0                   	// #0
 190:	90000000 	adrp	x0, 0 <urlparse>
 194:	91000000 	add	x0, x0, #0x0
 198:	94000000 	bl	0 <printf>
        for( p2 = psz_parse; p2 < p; p2++ )
 19c:	f94013a0 	ldr	x0, [x29, #32]
 1a0:	91000400 	add	x0, x0, #0x1
 1a4:	f90013a0 	str	x0, [x29, #32]
 1a8:	f94013a1 	ldr	x1, [x29, #32]
 1ac:	f94017a0 	ldr	x0, [x29, #40]
 1b0:	eb00003f 	cmp	x1, x0
 1b4:	54fff503 	b.cc	54 <urlparse+0x54>  // b.lo, b.ul, b.last
#undef I

        }
    }
	printf("p2 = %s\n", p2);
 1b8:	90000000 	adrp	x0, 0 <urlparse>
 1bc:	91000000 	add	x0, x0, #0x0
 1c0:	f94013a1 	ldr	x1, [x29, #32]
 1c4:	94000000 	bl	0 <printf>

	if( p != NULL )
 1c8:	f94017a0 	ldr	x0, [x29, #40]
 1cc:	f100001f 	cmp	x0, #0x0
 1d0:	54000680 	b.eq	2a0 <urlparse+0x2a0>  // b.none
    {
        /* we have a protocol */

        /* skip :// */
        *p++ = '\0';
 1d4:	f94017a0 	ldr	x0, [x29, #40] ; p
 1d8:	91000401 	add	x1, x0, #0x1   ; p+1
 1dc:	f90017a1 	str	x1, [x29, #40] ; p
 1e0:	3900001f 	strb	wzr, [x0]  ; *p++
		printf("\t ------ %s %d p = %s\n",  __FUNCTION__, __LINE__, p);
 1e4:	90000000 	adrp	x0, 0 <urlparse>
 1e8:	91000001 	add	x1, x0, #0x0
 1ec:	90000000 	adrp	x0, 0 <urlparse>
 1f0:	91000000 	add	x0, x0, #0x0
 1f4:	f94017a3 	ldr	x3, [x29, #40]
 1f8:	52800542 	mov	w2, #0x2a                  	// #42
 1fc:	94000000 	bl	0 <printf>
		printf("\t ------ %s %d psz_parse = %s\n",  __FUNCTION__, __LINE__, psz_parse);
 200:	90000000 	adrp	x0, 0 <urlparse>
 204:	91000001 	add	x1, x0, #0x0
 208:	90000000 	adrp	x0, 0 <urlparse>
 20c:	91000000 	add	x0, x0, #0x0
 210:	f9400fa3 	ldr	x3, [x29, #24]
 214:	52800562 	mov	w2, #0x2b                  	// #43
 218:	94000000 	bl	0 <printf>
        if( p[1] == '/' )
 21c:	f94017a0 	ldr	x0, [x29, #40]
 220:	91000400 	add	x0, x0, #0x1
 224:	39400000 	ldrb	w0, [x0]
 228:	7100bc1f 	cmp	w0, #0x2f
 22c:	54000081 	b.ne	23c <urlparse+0x23c>  // b.any
            p += 2;
 230:	f94017a0 	ldr	x0, [x29, #40]
 234:	91000800 	add	x0, x0, #0x2
 238:	f90017a0 	str	x0, [x29, #40]
        psz_protocol = psz_parse;
 23c:	f9400fa0 	ldr	x0, [x29, #24]
 240:	f9000ba0 	str	x0, [x29, #16]
		printf("\t ------ %s %d url->psz_protocol = %s\n",  __FUNCTION__, __LINE__, psz_protocol);
 244:	90000000 	adrp	x0, 0 <urlparse>
 248:	91000001 	add	x1, x0, #0x0
 24c:	90000000 	adrp	x0, 0 <urlparse>
 250:	91000000 	add	x0, x0, #0x0
 254:	f9400ba3 	ldr	x3, [x29, #16]
 258:	528005e2 	mov	w2, #0x2f                  	// #47
 25c:	94000000 	bl	0 <printf>
        psz_parse = p;
 260:	f94017a0 	ldr	x0, [x29, #40]
 264:	f9000fa0 	str	x0, [x29, #24]
		printf("\t ------ %s %d p = %s\n",  __FUNCTION__, __LINE__, p);
 268:	90000000 	adrp	x0, 0 <urlparse>
 26c:	91000001 	add	x1, x0, #0x0
 270:	90000000 	adrp	x0, 0 <urlparse>
 274:	91000000 	add	x0, x0, #0x0
 278:	f94017a3 	ldr	x3, [x29, #40]
 27c:	52800622 	mov	w2, #0x31                  	// #49
 280:	94000000 	bl	0 <printf>
		printf("\t ------ %s %d psz_parse = %s\n",  __FUNCTION__, __LINE__, psz_parse);
 284:	90000000 	adrp	x0, 0 <urlparse>
 288:	91000001 	add	x1, x0, #0x0
 28c:	90000000 	adrp	x0, 0 <urlparse>
 290:	91000000 	add	x0, x0, #0x0
 294:	f9400fa3 	ldr	x3, [x29, #24]
 298:	52800642 	mov	w2, #0x32                  	// #50
 29c:	94000000 	bl	0 <printf>
    }

}
 2a0:	d503201f 	nop
 2a4:	a8c37bfd 	ldp	x29, x30, [sp], #48
 2a8:	d65f03c0 	ret

00000000000002ac <tpoint>:
         ------ vlc_UrlParse 118 p = 192.168.2.41/xiaozhi/test.rmvb
         ------ vlc_UrlParse 119 psz_parse = 192.168.2.41/xiaozhi/test.rmvb
*/

void tpoint()
{
 2ac:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
 2b0:	910003fd 	mov	x29, sp
	char *p;
	char *context = "http://192.168.2.41/xiaozhi/test.vod";
 2b4:	90000000 	adrp	x0, 0 <urlparse>
 2b8:	91000000 	add	x0, x0, #0x0
 2bc:	f9000fa0 	str	x0, [x29, #24]

	p = strstr(context, ":/");
 2c0:	90000000 	adrp	x0, 0 <urlparse>
 2c4:	91000000 	add	x0, x0, #0x0
 2c8:	aa0003e1 	mov	x1, x0
 2cc:	f9400fa0 	ldr	x0, [x29, #24]
 2d0:	94000000 	bl	0 <strstr>
 2d4:	f9000ba0 	str	x0, [x29, #16]
	printf("p = %s\n", p);
 2d8:	90000000 	adrp	x0, 0 <urlparse>
 2dc:	91000000 	add	x0, x0, #0x0
 2e0:	f9400ba1 	ldr	x1, [x29, #16]
 2e4:	94000000 	bl	0 <printf>

	*p++ = '\0';
 2e8:	f9400ba0 	ldr	x0, [x29, #16]
 2ec:	91000401 	add	x1, x0, #0x1
 2f0:	f9000ba1 	str	x1, [x29, #16]
 2f4:	3900001f 	strb	wzr, [x0]
	printf("context = %s \n", context);		// context = http  ?
 2f8:	90000000 	adrp	x0, 0 <urlparse>
 2fc:	91000000 	add	x0, x0, #0x0
 300:	f9400fa1 	ldr	x1, [x29, #24]
 304:	94000000 	bl	0 <printf>
}
 308:	d503201f 	nop
 30c:	a8c27bfd 	ldp	x29, x30, [sp], #32
 310:	d65f03c0 	ret

0000000000000314 <main>:



int main()
{
 314:	a9bf7bfd 	stp	x29, x30, [sp, #-16]!
 318:	910003fd 	mov	x29, sp
	urlparse();
 31c:	94000000 	bl	0 <urlparse>
	return 0;
 320:	52800000 	mov	w0, #0x0                   	// #0
}
 324:	a8c17bfd 	ldp	x29, x30, [sp], #16
 328:	d65f03c0 	ret
